原帖 | Jason | 2026-07-07 13:51 | 👍0 | 阅读约1
很多人都会用 I2C,目前 I3C 也正在普及和落地,带大家前沿看一下 I3C。
I3C 是 MIPI 推出的 I2C 迭代总线,是传感器、嵌入式开发必学模块。
一、诞生初衷
设备里传感器越来越多,I2C、SPI、UART多接口混用,还要额外引出中断、片选引脚,占用大量 GPIO、拉高 PCB 成本。I3C 用两根线整合所有外设接口,做到高速、低功耗、精简布线。
二、和 I2C 最核心区别
1. 省去独立中断引脚:I2C 必须外接中断线通知主控,I3C 支持带内中断 IBI,直接在总线里发送中断信号,地址号越小优先级越高。
2. 速率翻倍提升:I2C 封顶 3.4MHz,I3C 默认 SDR 模式 12.5MHz,还有 HDR 多档高速模式,最高可达 37.5Mbps。
3. 地址分配优化:I2C 是固定静态地址,容易冲突;I3C 由主机动态分配地址,同时兼容老式 I2C 从机(注意,不支持 I2C 10 位拓展地址)。
4. 电气性能更强:支持推挽输出增强驱动,不支持 I2C 的时钟拉伸,总线可靠性更好。
三、四种工作速率模式(SDR 最通用)
1. SDR(默认标配):12.5Mbps,绝大多数主控和器件都支持,兼容I2C时序逻辑
2. HDR-DDR:25Mbps,双倍时钟沿传输
3. HDR-TSL:30Mbps,适配I2C/I3C混合总线
4. HDR-TSP:37.5Mbps,仅纯I3C设备总线可用
I3C 基础版(BASIC)砍掉了同步计时、高阶HDR等功能,是现阶段主流落地版本,还支持多主机、热插拔热加入设备,进一步优化功耗。
四、驱动落地关键点
Linux 内核从 5.10 版本才原生搭载 I3C 驱动,路径 /drivers/i3c/ ,4.14、4.19老内核没有原生支持。感兴趣的可以去看一下源码。
总线依靠 BCR、DCR、LVR 三类特征寄存器管理设备,靠 CCC 通用指令完成地址分配、总线控制。
五、落地场景
多传感器阵列、摄像头、触控面板、物联网低功耗设备,可直接替换原有 I2C、SPI、UART 电路,向下兼容旧器件,是硬件接口升级的最优方案。
相关笔记